System and method for learning and/or optimizing manufacturing processes

ABSTRACT

A system and method for learning and/or optimizing processes related to semiconductor manufacturing is provided. A learning component generates a set of candidate process models based on process data associated with one or more fabrication tools. The learning component also selects a particular process model from the set of candidate process models that is associated with lowest error. An optimization component generates a set of candidate solutions associated with the particular process model. The optimization component also selects a particular solution from the set of candidate solutions based on a target output value and an output value associated with the particular solution.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 14/097,907, filed Dec. 5, 2013, and entitled“SYSTEM AND METHOD FOR LEARNING AND/OR OPTIMIZING MANUFACTURINGPROCESSES,” the entirety of which is incorporated herein by reference.

TECHNICAL FIELD

The described and claimed subject matter relates generally to techniquesfor learning and/or optimizing manufacturing processes.

BACKGROUND

Technological advances have lead to process-driven automated equipmentthat is increasingly complex. A tool system to accomplish a specificgoal or perform a specific, highly technical process can commonlyincorporate multiple functional elements to reach the goal orsuccessfully execute the process, and various sensors that collect datato monitor the operation of the equipment. Such automated equipment cangenerate a large volume of data. Data can include information related toa product or a service performed as a part of the specific task and/orsizable log information related to the process. For example, processdata and/or metrology data can be collected during a manufacturingprocess and/or stored in one or more datasets.

While modern electronic storage technologies can afford retainingconstantly increasing quantities of data, utilization of the accumulateddata remains far from optimal. Examination and interpretation ofcollected information generally requires human intervention.Furthermore, collected information can be limited and/or costly toobtain. For example, a process on a semiconductor manufacturing tool mayrun for seventeen hours (e.g., 61,200 seconds). During processing, thesemiconductor manufacturing tool may output sensor measurements everysecond via, for example, several hundred sensors. Accordingly, largedata sets that include the output sensor measurements must then bemanually studied (e.g., by process engineers) during process developmentand/or troubleshooting activities. Furthermore, when a process relatedto the semiconductor manufacturing tool is concluded, qualities (e.g.,thickness, particle count) for several wafers generated by thesemiconductor manufacturing tool must be manually measured (e.g., bymanufacturing engineers).

The above-described deficiencies of today's fabrication systems aremerely intended to provide an overview of some of the problems ofconventional systems, and are not intended to be exhaustive. Otherproblems with conventional systems and corresponding benefits of thevarious non-limiting embodiments described herein may become furtherapparent upon review of the following description.

SUMMARY

The following presents a simplified summary of the specification inorder to provide a basic understanding of some aspects of thespecification. This summary is not an extensive overview of thespecification. It is intended to neither identify key or criticalelements of the specification, nor delineate any scope of the particularimplementations of the specification or any scope of the claims. Itssole purpose is to present some concepts of the specification in asimplified form as a prelude to the more detailed description that ispresented later.

In accordance with an implementation, a system includes a learningcomponent and an optimization component. The learning componentgenerates a set of candidate process models based on process dataassociated with one or more fabrication tools, and selects a particularprocess model from the set of candidate process models that isassociated with lowest error. The optimization component generates a setof candidate solutions associated with the particular process model, andselects a particular solution from the set of candidate solutions basedon a target output value and an output value associated with theparticular solution

In accordance with another implementation, a method provides forgenerating a set of candidate process models based on process dataassociated with one or more fabrication tools, generating a qualityvalue for each candidate process model in the set of candidate processmodels, selecting a particular process model from the set of candidateprocess models based on the quality value associated with each candidateprocess model in the set of candidate process models, generating a setof candidate solutions associated with the particular process model, andselecting a particular solution from the set of candidate solutionsbased on a target output value and an output value associated with theparticular solution.

In accordance with yet another implementation, a computer-readablemedium having stored thereon computer-executable instructions that, inresponse to execution by a system including a processor, cause thesystem to perform operations, the operations including generating a setof candidate process models based on process data associated with one ormore fabrication tools, generating a quality value for respectivecandidate process models in the set of candidate process models,selecting a particular process model from the set of candidate processmodels based on the quality value associated with respective candidateprocess models in the set of candidate process models, generating a setof candidate solutions associated with the particular process model, andselecting a particular solution from the set of candidate solutionsbased on a target output value and an output value associated with theparticular solution.

The following description and the annexed drawings set forth certainillustrative aspects of the specification. These aspects are indicative,however, of but a few of the various ways in which the principles of thespecification may be employed. Other advantages and novel features ofthe specification will become apparent from the following detaileddescription of the specification when considered in conjunction with thedrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is block diagram illustrating an exemplary system for learningand/or optimizing processes relating to semiconductor production, inaccordance with various aspects and implementations described herein;

FIG. 2 is a block diagram illustrating an exemplary learning component,in accordance with various aspects and implementations described herein;

FIG. 3 is a block diagram illustrating an exemplary optimizationcomponent, in accordance with various aspects and implementationsdescribed herein;

FIG. 4 is block diagram illustrating an exemplary system for learningand/or optimizing processes relating to semiconductor production thatincludes short term memory, in accordance with various aspects andimplementations described herein;

FIG. 5 is block diagram illustrating an exemplary system for learningand/or optimizing processes relating to semiconductor production basedon user input, in accordance with various aspects and implementationsdescribed herein;

FIG. 6 illustrates an exemplary data matrix, in accordance with variousaspects and implementations described herein;

FIG. 7 illustrates an exemplary ranking of candidate process models, inaccordance with various aspects and implementations described herein;

FIG. 8 illustrates an exemplary ranking of candidate solutions, inaccordance with various aspects and implementations described herein;

FIG. 9 is a flowchart of an example methodology for learning,controlling and/or optimizing processes in a semiconductor fabricationsystem, in accordance with various aspects and implementations describedherein;

FIG. 10 is a flowchart of an example methodology for learning processesin a semiconductor fabrication system, in accordance with variousaspects and implementations described herein;

FIG. 11 is a flowchart of an example methodology for controlling and/oroptimizing processes in a semiconductor fabrication system, inaccordance with various aspects and implementations described herein;

FIG. 12 is a schematic block diagram illustrating a suitable operatingenvironment; and

FIG. 13 is a schematic block diagram of a sample-computing environment.

DETAILED DESCRIPTION

Various aspects of this disclosure are now described with reference tothe drawings, wherein like reference numerals are used to refer to likeelements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of one or more aspects. It should beunderstood, however, that certain aspects of this disclosure may bepracticed without these specific details, or with other methods,components, materials, etc. In other instances, well-known structuresand devices are shown in block diagram form to facilitate describing oneor more aspects.

Technological advances have lead to process-driven automated equipmentthat is increasingly complex. A tool system to accomplish a specificgoal or perform a specific, highly technical process can commonlyincorporate multiple functional elements to achieve the goal orsuccessfully execute the process, and various sensors that collect datato monitor the operation of the equipment. Such automated equipment cangenerate a large volume of data. Data can include substantialinformation related to a product or service performed as a part of thespecific task and/or sizable log information related to one or moreprocesses. While modern electronic storage technologies can affordretaining constantly increasing quantities of data, utilization of theaccumulated data remains far from optimal. Examination andinterpretation of collected information generally requires humanintervention. Furthermore, collected information can be limited and/orcostly to obtain.

To that end, techniques for learning and/or optimizing processes relatedto manufacturing (e.g., semiconductor manufacturing) are disclosed. Forexample, a set of candidate process models based on process dataassociated with one or more fabrication tools can be generated.Furthermore, a particular process model from the set of candidateprocess models that is associated with lowest error can be selected. Assuch, a set of candidate solutions associated with the particularprocess model can be generated. Furthermore, a particular solution fromthe set of candidate solutions can be selected based on a target outputvalue and an output value associated with the particular solution.Accordingly, quantity of process data and/or quality of process data canbe improved by providing incremental learning and/or incrementaloptimization on a continuous basis. Furthermore, cost of obtainingprocess data can be reduced. Therefore, output results of fabricationtools can be constantly improved over time. In an aspect, a short termmemory (e.g., a short term model memory) can be implemented to store oneor more process models. Additionally or alternatively, another shortterm memory (e.g., a short term optimization memory) can be implementedto store one or more solutions (e.g., one or more process settings).

Referring initially to FIG. 1, there is illustrated an example system100 for learning and/or optimizing processes related to manufacturing(e.g., semiconductor production), according to an aspect of the subjectdisclosure. System 100 can include fabrication tool(s) 110, spectroscope120, tool sensors 130, device measurement equipment 140, maintenancemonitoring equipment 150, reporting component 160 and analysis component170. Analysis component 170 can include a learning component 180 and anoptimization component 190. Fabrication tool(s) 110 can include one ormore tools and/or one or more chambers for manufacturing (e.g.,semiconductor fabrication). In an aspect, fabrication tool(s) 110 can beassociated with a semiconductor fabrication system. For example, asshown in FIG. 1, fabrication tool(s) 110 can receive input wafers 102and output processed wafers 104. However, it is to be appreciated thatfabrication tool(s) 110 can receive and/or generate a different type ofasset. In an exemplary, non-limiting embodiment, fabrication tool(s) 110can be an etch tool that removes unmasked material from input wafers 102via an etching process (e.g., wet etch, dry etch, plasma etching, etc.)to generate processed wafers 104 having cavities and features formedthereon. Fabrication tool(s) 110 can also be a deposition tool (e.g.,atomic layer deposition, chemical vapor deposition, etc.) that depositsmaterial onto input wafers 102 to yield processed wafers 104. However,it is to be appreciated that fabrication tool(s) 110 can be associatedwith a different type of fabrication system.

A variety of measurement devices, such as spectroscope 120, tool sensors130, device measurement equipment 140 and/or maintenance monitoringequipment 150, can monitor one or more processes performed byfabrication tool(s) 110 to acquire disparate information relating tovarious aspects, conditions, or results of the process. As an example,spectroscope 120 can acquire spectral data (e.g., spectral intensityinformation). For example, spectral data can include a set ofintensities for respective wavelengths or spectral lines observable byspectroscope 120. In one example, spectral data can include time-seriesdata such that spectroscope 120 measures intensities for respectivewavelengths at regular intervals (e.g., every second, every 2 seconds,every 100 milliseconds, etc.). Spectroscope 120 can also correlatespectral data with wafer IDs associated with specific wafers processedby fabrication tool(s) 110. Accordingly, spectroscope 120 can acquirespectral data individually for each wafer processed by fabricationtool(s) 110.

Tool sensors 130 can monitor and/or measure tool operationcharacteristics while fabrication tool(s) 110 processes input wafers102. Furthermore, tool sensors 130 can generate corresponding sensormeasurement data. Sensor measurement data, similar to spectral datameasured by spectroscope 120, can be time-series data correlated on aper-wafer basis. Sensor measurement data can include measurements from avariety of sensors. Such measurements can include, but are not limitedto, pressures within one or more chambers of fabrication tool(s) 110,gas flows for one or more distinct gases, temperatures, upper radiofrequency (RF) power, elapsed time since last wet-clean, age of toolparts, and the like. In an aspect, sensor measurement data can beassociated with physical quantities. In another aspect, sensormeasurement data can be associated with virtual quantities.

Device measurement equipment 140 can generate device measurement data.For example, device measurement equipment 140 can measure physical andgeometric properties of wafers and/or features fabricated on wafers. Forinstance, device measurement equipment 140 can measure developmentinspection critical dimension (DI-CD), final inspection criticaldimension (FI-CD), etch bias, thickness, and so forth, at predeterminedlocations or regions of wafers. The measured properties can beaggregated on a per-location, per-wafer basis and output as devicemeasurement information. Properties of wafers are typically measuredbefore processing or after processing. Accordingly, device measurementdata can be time-series data acquired at a different interval ascompared with spectral data and sensor data.

Maintenance monitoring equipment 150 can be implemented to acquireand/or generate maintenance data associated with fabrication tool(s)110. For example, maintenance data can include, but is not limited to,elapsed time since a last preventative maintenance, age of one or morecomponents associated with fabrication tool(s) 110 (e.g., productiontime associated with a component), and the like.

Reporting component 160 and/or analysis component 170 can receive data(e.g., process data) acquired and/or generated by as spectroscope 120,tool sensors 130, device measurement equipment 140 and/or maintenancemonitoring equipment 150. In an aspect, reporting component 160 and/oranalysis component 170 can receive the process data as the process datais generated (e.g., during an on-line mode). In another aspect,reporting component 160 and/or analysis component 170 can receive theprocess data upon completion of one or more processes associated withfabrication tool(s) 110. In an aspect, process data can be consolidatedin a data matrix. For example, a data matrix can include sensormeasurement data, spectral data, device measurement data and/ormaintenance data. In another aspect, a data matrix (e.g., a new datamatrix) can be generated incrementally to initiate a new learning cycle.

In an aspect, reporting component 160 can normalize process data. Forexample, reporting component 160 can normalize process data to accountfor error associated with fabrication tool(s) 110. For example,reporting component 160 can normalize spectral data (e.g., measuredintensities) to account for measurement error of intensity of spectrallines in different tools and/or chambers included in fabrication tool(s)110. In a non-limiting example, reporting component can compute avariable (e.g., total light intensity) associated with an arbitrarilyselected reference chamber or reference tool included in fabricationtool(s) 110 to normalize process data.

In one or more embodiments, process data can be derived from toolprocess logs that record parameter data and/or performance data measuredduring respective runs of fabrication tool(s) 110. Tool process logs caninclude measurement data from spectroscope 120, tool sensors 130, devicemeasurement equipment 140 and/or maintenance monitoring equipment 150.Measurements recorded in such tool process logs can include, but are notlimited to, sensor readings (e.g., pressures, temperatures, power,etc.), maintenance related readings (e.g., age of focus ring, age ofmass flow controller, time since last performed maintenance, time sincelast batch of resist was loaded, etc.), and/or tool and performancestatistics (e.g., time to process wafer, chemical consumption, gasconsumption, etc.).

In an exemplary scenario, a tool process log can be generated byreporting component 160 at the end of each process run of fabricationtool(s) 110. At the end of a process run, data from one or more of thespectroscope 120, tool sensors 130, device measurement equipment 140, ormaintenance monitoring equipment 150 can be provided to reportingcomponent 160, which can aggregate the collected data in a tool processlog for the run. A tool process log can correspond to a singlesemiconductor wafer processed during the run, or a batch ofsemiconductors fabricated during the run. The tool process logs can thenbe stored for reporting or archival purposes. In an aspect, process datacan be provided automatically by reporting component 160 or a relateddevice. In another aspect, process data can be provided to analysiscomponent 170 manually by an operator.

Although the foregoing example describes process data as being retrievedor extracted from tool process logs, it is to be appreciated thatprocess data may also be provided to analysis component 170 by othermeans. For example, in some embodiments, all or a subset of process datamay be provided directly to analysis component 170 from devices 120,130, 140 and/or 150.

Learning component 180 can generate a set of candidate process modelsbased on the process data associated with the fabrication tool(s) 110.Each candidate process model in the set of candidate process models canbe a mathematical process model (e.g., a candidate function). Forexample, each candidate process model in the set of candidate processmodels can be implemented to learn a mathematical process model for anoutput as a function of the process data (e.g., tunable inputs, inputparameters, etc.). In an aspect, each candidate process models in theset of candidate process models can be generated using one or moregenetic algorithms (e.g., genetic programming) In another aspect, eachcandidate process models in the set of candidate process models can begenerated using a curve fitting technique. For example, each candidateprocess model in the set of candidate process models can be generatedusing linear approximation, multi-linear approximation, polynomial curvefitting, neural networks, etc. However, it is to be appreciated thateach candidate process model in the set of candidate process models canbe generated using a different type of technique. In yet another aspect,learning component can generate a new set of candidate process models inresponse to receiving new process data (e.g., new process dataassociated with a new run associated with fabrication tool(s) 110, newprocess data associated with a new step associated with a new runassociated with fabrication tool(s) 110, etc.).

In an aspect, each candidate process model in the set of candidateprocess models can be associated with a different amount of processdata. For example, a first candidate process model can be associatedwith a first amount of process data, the second candidate process modelcan be associated with a second amount of process data, etc.Additionally or alternatively, one or more of the candidate processmodels in the set of candidate process models can be associated with adifferent number of parameters (e.g., input parameters, tunable inputs,etc.). For example, a first candidate process model can be associatedwith a first number of parameters, a second candidate process model canbe associated with a second number of parameters, etc. In anotheraspect, a user can specify a range (e.g., a minimum value, a maximumvalue, a mean value, a standard deviation value, etc.) for each of theparameters (e.g., input parameters, tunable inputs, etc.).

Learning component 180 can generate a quality value (e.g., a predictedperformance value) for each candidate process model in the set ofcandidate process models. A quality value can be a measure of apredicted performance for a corresponding candidate process model. Forexample, a quality value can be a measure that compares a predictedoutput of a candidate process model to a measured output of thecandidate process model. In an aspect, a quality value can be generatedbased on a mean squared error (MSE). For example, a quality value can begenerated based on a root MSE. In another aspect, a quality value can begenerated based on correlation. In yet another aspect, a quality valuecan be generated based on coefficient of determination (R²). However, itis to be appreciated that another type of quality measurement can beimplemented to generate a quality value. In an aspect, learningcomponent 180 can normalize a quality measurement for each candidateprocess model in the set of candidate process models. For example, aquality value for each candidate process model in the set of candidateprocess models can be equal to 1/(1−MSE).

Furthermore, learning component 180 can generate a diversity value(e.g., a similarity value, a uniqueness value, etc.). A diversity valuecan be a measure of uniqueness of a candidate process model with respectto another candidate process model in the set of candidate processmodels. For example, an output value generated by a candidate processmodel in the set of candidate process models can be compared with otheroutput values generated by other candidate process models in the set ofcandidate process models. In one example, a diversity value can equalzero when an output of a candidate process model is equal to an outputof another candidate process model. In an aspect, a diversity value canbe generated based on a cosine function (e.g., a first output vectorassociated with a candidate process model and a second output vectorassociated with another candidate process model). In another aspect, adiversity value can be generated based on a Halstead metric (e.g., aHalstead complexity measure). In another aspect, a diversity value canbe generated based on an inverse of similarity measurement. However, itis to be appreciated that another type of diversity measurement (e.g.,similarity measurement) can be implemented to generate a diversityvalue.

Learning component 180 can compare each candidate process model in theset of candidate process models to determine a particular candidateprocess model with highest quality (e.g., a highest quality processmodel). For example, learning component 180 can compare a quality valuesfor each candidate process model in the set of candidate process modelsto determine a particular candidate process model with a lowest MSEvalue. In another example, learning component 180 can compare a qualityvalues for each candidate process model in the set of candidate processmodels to determine a particular candidate process model with a highestperformance value (e.g., 1/(1−MSE)). As such, learning component 180 canselect a particular process model from the set of candidate processmodels that is associated with lowest error. Moreover, the quality valuegenerated for each candidate process model in the set of candidateprocess models can facilitate selection of the particular process modelfrom the set of candidate process models.

Furthermore, learning component 180 can rank each candidate processmodel in the set of candidate process models. For example, learningcomponent 180 can rank each remaining candidate process model in the setof candidate process models (e.g., with respect to the highest qualityprocess model) based on a corresponding quality value and acorresponding diversity value. As such, ranking of candidate processmodels can be sorted initially based on quality and then based ondiversity. For example, the highest quality process model can be rankedfirst. Remaining candidate process model in the set of candidate processmodels can be ranked with respect to the highest quality process modelbased on a quality value associated with each remaining candidateprocess model. Then, the remaining candidate process models in the setof candidate process models can be further ranked with respect to thehighest quality process model based on a diversity value associated witheach remaining candidate process model. A higher diversity value (e.g.,corresponding to greater uniqueness) can be associated with a higherranking. As such, candidate process models that are higher in qualitywhile being more unique with respect to the highest quality processmodel can be ranked higher. In an aspect, learning component 180 canrank each remaining candidate process model in the set of candidateprocess models with respect to the highest quality process model basedon weighted average. However, it is to be appreciated that learningcomponent 180 can rank each remaining candidate process model in the setof candidate process models with respect to the highest quality processmodel based on a different ranking technique.

In an aspect, learning component 180 can select a subset of the set ofcandidate process models. For example, learning component 180 can selecta subset of candidate process models based on the ranking of thecandidate process models. In a non-limiting example, learning component180 can select the three most highly ranked candidate process models(e.g., the highest quality process model and two other candidate processmodels ranked after the highest quality process model). Accordingly,learning component 180 can select one or more process models from theset of candidate process models based on a ranking of quality values anddiversity values associated with the set of candidate process models. Inan aspect, learning component 180 can select a subset of candidateprocess models based on the ranking and an available size associatedwith a memory (e.g., a short term model memory). For example, learningcomponent 180 can select a subset of candidate process models based onthe ranking to fill available memory locations associated with thememory (e.g., the short term model memory).

Optimization component 190 can receive a target output value.Furthermore, optimization component 190 can generate a set of candidatesolutions. Each solution can be a set of values for inputs associatedwith the highest quality process model (e.g., the process model selectedby learning component 180). For example, the highest quality processmodel can be associated with a plurality of inputs (e.g., inputparameters). Each candidate solution can include a value for each inputassociated with the highest quality process model (e.g., each candidatesolution can include a set of input values). In an aspect, optimizationcomponent 190 can generate the set of candidate solutions based on oneor more genetic algorithms (e.g., genetic algorithm for optimization).In another aspect, optimization component 190 can generate the set ofcandidate solutions based on simulated annealing. In yet another aspect,optimization component 190 can generate the set of candidate solutionsbased on hill climbing optimization technique. However, it is to beappreciated that optimization component 190 can generate the set ofcandidate solutions based on a different type of optimization technique.

Optimization component 190 can utilize the highest quality process model(e.g., the process model selected by learning component 180) to predictan output value (e.g., a result value) for each candidate solution inthe set of candidate solutions. Accordingly, optimization component 190can generate a set of candidate process parameters based on the highestquality process model (e.g., the process model selected by learningcomponent 180).

Optimization component 190 can generate a quality value (e.g., apredicted performance value) for each candidate solutions in the set ofcandidate solutions. A quality value can be a measure of a predictedperformance for a corresponding candidate solution. For example, aquality value can be a measure of error between the target output valueand an output value (e.g., a predicted output value) associated with acandidate solution. In an aspect, a quality value can be generated basedon MSE. For example, a quality value can be generated based on anormalized MSE. In another aspect, a quality value can be generatedbased on correlation. In yet another aspect, a quality value can begenerated based on coefficient of determination (R²). However, it is tobe appreciated that another type of quality measurement can beimplemented to generate a quality value.

Optimization component 190 can rank each candidate solution in the setof candidate solutions based on a corresponding quality value and thetarget output value. For example, optimization component 190 can rankeach of candidate solution in the set of candidate solutions to select acandidate solution with highest quality (e.g., a candidate solution withlowest error between the target output value and a predicted outputvalue associated with the candidate solution). As such, optimizationcomponent 190 can determine a candidate solution with highest quality(e.g., a highest quality solution). Therefore, the quality value foreach candidate solution in the set of candidate solutions can facilitateselection of the highest quality solution. Accordingly, optimizationcomponent 190 can selects a highest quality solution based on the targetoutput value and an output value (e.g., a predicted output value)associated with the highest quality solution.

Furthermore, optimization component 190 can generate a diversity valuefor each candidate solution in the set of candidate solutions. Adiversity value can be a measure of uniqueness of a particular candidatesolution with respect to the highest quality solution (e.g., thecandidate solution with highest quality). In an aspect, a diversityvalue can be generated based on a cosine function (e.g., a first outputvector associated with a particular candidate solution and a secondoutput vector associated with the highest quality solution). In anotheraspect, a diversity value can be generated based on a Halstead metric(e.g., a Halstead complexity measure). In another aspect, a diversityvalue can be generated based on an inverse of similarity measurements.However, it is to be appreciated that another type of diversitymeasurement can be implemented to generate a diversity value.

Optimization component 190 can compare the highest quality solution withother candidate solutions in the set of candidate solutions. Forexample, optimization component 190 can rank each remaining candidatesolution in the set of candidate solutions with respect to the highestquality solution based on quality and diversity. For example, thehighest quality solution can be ranked first. Therefore, the remainingcandidate solutions in the set of candidate solutions can be ranked withrespect to the highest quality solution based on a quality valueassociated with each of the remaining candidate solutions. Then, theremaining candidate solutions in the set of candidate solutions can befurther ranked with respect to the highest quality solution based on adiversity value associated with each of the remaining candidatesolutions. As such, candidate solutions that are higher in quality whilebeing more unique with respect to the highest quality solution can beranked higher. In an aspect, optimization component 190 can rank eachremaining candidate solution in the set of candidate solutions withrespect to the highest quality solution based on weighted average.However, it is to be appreciated that optimization component 190 canrank each remaining candidate solution in the set of candidate solutionswith respect to the highest quality solution based on a differentranking technique.

In an aspect, optimization component 190 can select a subset of the setof candidate solutions. For example, optimization component 190 canselect a subset of candidate solutions based on the ranking of thecandidate solutions. In a non-limiting example, optimization component190 can select the three most highly ranked candidate solutions (e.g.,the highest quality solution and two other candidate solutions rankedafter the selected candidate solution). Accordingly, optimizationcomponent 190 can select one or more solutions from the set of candidatesolutions based on a ranking of quality values and diversity valuesassociated with the set of candidate solutions. In an aspect,optimization component 190 can select a subset of candidate solutionsbased on the ranking and an available size associated with a memory(e.g., a short term optimization memory). For example, optimizationcomponent 190 can select a subset of candidate solutions based on theranking to fill available memory locations associated with the memory(e.g., the short term optimization memory).

In an aspect, learning component 180 can further transmit a differentselected process model (e.g., a new process model) to optimizationcomponent 190. Optimization component 190 can utilize numericaldifferentiation to calculate a differential of an output value (e.g., apredicted output value) of the different selected process model and aninput parameter associated with the different selected process model(e.g., a numerical derivate can be calculated for each available inputparameter associated with the different selected process model). Assuch, optimization component 190 can be configured to only determinemodifications to input parameters that have non-zero first derivatives.Accordingly, optimization component 190 can limit searches formodifications to input parameters that impact an output value withrespect to the new process model.

Therefore, the process model selected by the learning component 180 canbe utilized to control and/or optimize a fabrication process by tuninginput parameters to achieve a desired target output value. For example,input parameters can be tuned (e.g., adjusted on a run-to-run basis,adjusted on a step-to-step basis, etc.) such that an output value (e.g.,a predicted output value) of the process model selected by the learningcomponent is within a desired range associated with the target outputvalue. A process associated with fabrication tool(s) 110 can then be runwith the parameter values (e.g., solution) identified by optimizationcomponent 190. Upon completion of the process, the actual output can bemeasured and the difference between the measured output versus thepredicted output can be computed as error. Therefore, processoptimization can be realized to drive error towards zero duringmanufacturing processes associated with fabrication tool(s) 108 (e.g.,manufacturing processes associated with fabrication tool(s) 108 can beoptimally controlled).

FIG. 2 illustrates a non-limiting implementation of a system 200 inaccordance with various aspects and implementations of this disclosure.System 200 includes learning component 180. Learning component 180 caninclude a candidate component 202, a quality component 204, a diversitycomponent 206, an identification component 208, a ranking component 210and/or a selection component 212. Aspects of system 200 can constitutemachine-executable component(s) embodied within machine(s), e.g.,embodied in one or more computer readable mediums (or media) associatedwith one or more machines. Such component, when executed by the one ormore machines, e.g., computer(s), computing device(s), virtualmachine(s), etc. can cause the machine(s) to perform the operationsdescribed. System 200 can include memory 216 for storing computerexecutable components and instructions. System 200 can further include aprocessor 214 to facilitate operation of the instructions (e.g.,computer executable components and instructions) by system 200.

Learning component 180 (e.g., candidate component 202, quality component204, diversity component 206, identification component 208, rankingcomponent 210 and/or selection component 212) can facilitate autonomouslearning to maximize quality and diversity (e.g., minimize error andmaximize uniqueness) of a process model for one or more manufacturingprocesses associated with fabrication tool(s) 110. Accordingly, learningcomponent 180 can adapt to changing conditions and/or manufacturingsituations associated with fabrication tool(s) 110. Moreover, learningcomponent 180 can prevent myopic generation and/or selection of processmodels associated with fabrication tool(s) 110 (e.g., by generatingand/or selecting a greater sample set of process models). Therefore,learning component 180 can minimize overfitting of generated and/orselected process models.

Candidate component 202 can generate one or more candidate processmodels (e.g., one or more potential process models) for one or moremanufacturing processes associated with fabrication tool(s) 110. Forexample, candidate component 202 can generate a set of candidate processmodels based on process data (e.g., PROCESS DATA shown in FIG. 2)associated with one or more tools (e.g., fabrication tool(s) 110). Eachcandidate process model in the set of candidate process models can be amathematical process model (e.g., a candidate function). For example,each candidate process model in the set of candidate process models canbe implemented to learn a mathematical process model for an output as afunction of the process data. In an aspect, candidate component 202 canimplement one or more genetic algorithms to generate each of thecandidate process models in the set of candidate process models. Inanother aspect, candidate component 202 can implement a curve fittingtechnique to generate each of the candidate process models in the set ofcandidate process models. For example, each candidate process model inthe set of candidate process models can be generated using linearapproximation, multi-linear approximation, polynomial curve fitting,neural networks, etc. However, it is to be appreciated that candidatecomponent 202 can implement a different type of technique to generateeach candidate process model in the set of candidate process models.

Quality component 204 can facilitate selection of one or more processmodels generated by candidate component 202. For example, qualitycomponent 204 can facilitate selection of a process model with lowesterror (e.g., and/or one or more other process models based on error)from the set of candidate process models. Quality component 204 cangenerate a quality value (e.g., a predicted performance value) for eachof the candidate process models in the set of candidate process models.A quality value can be a measure of a predicted performance for acorresponding candidate process model. For example, a quality value canbe a measure that compares a predicted output of a candidate processmodel to a measured output of the candidate process model. In an aspect,a quality value can be associated with a MSE value. For example, aquality value can be associated with a root MSE value. In anotheraspect, a quality value can be associated with a correlation value. Inyet another aspect, a quality value can be associated with a coefficientof determination value. However, it is to be appreciated that anothertype of quality measurement can be associated with a quality value. Inan aspect, a quality value can be associated with a normalized value.For example, a quality value can be equal to 1/(1−MSE).

Diversity component 206 can further facilitate selection of one or moreprocess models generated by candidate component 202. For example,diversity component 206 can facilitate selection of a diverse subset ofcandidate process models from the set of candidate process models.Diversity component 206 can generate a diversity value (e.g., asimilarity value, a uniqueness value, etc.). A diversity value can be ameasure of uniqueness of a candidate process model with respect toanother candidate process model. For example, an output value (e.g., apredicted output value) generated by a candidate process model in theset of candidate process models can be compared with other output values(e.g., other predicted output values) generated by other candidateprocess models in the set of candidate process models. In one example,an output value (e.g., a predicted output value) generated by acandidate process model in the set of candidate process models can becompared with other output values (e.g., other predicted output values)generated by other candidate process models in the set of candidateprocess models. In an aspect, a diversity value can be associated with acosine function (e.g., a first output vector associated with a candidateprocess model and a second output vector associated with anothercandidate process model). In another aspect, a diversity value can beassociated with a Halstead metric (e.g., a Halstead complexity measure).In yet another aspect, a diversity value can be associated with inverseof similarity measurements. However, it is to be appreciated thatanother type of diversity measurement can be associated with a diversityvalue.

Identification component 208 can identify a candidate process model inthe set of candidate process models with highest quality (e.g., bycomparing quality values generated by quality component 204). Forexample, identification component 208 can identify a candidate processmodel in the set of candidate process models associated with a lowestMSE value (e.g., identification component 208 can identify a qualityvalue associated with a lowest MSE value). As such, identificationcomponent 208 can identify a process model with lowest error (e.g., fromthe set of candidate process models). Furthermore, identificationcomponent 208 can tag (e.g., label, mark, etc.) the candidate processmodel in the set of candidate process models associated with the lowestMSE value as the candidate process model with highest quality (e.g., ahighest quality process model). As such, identification component 208can identify a particular process model from the set of candidateprocess models that is associated with lowest error. Furthermore, thequality value generated for each candidate process model in the set ofcandidate process models can facilitate identification of the highestquality process model.

Ranking component 210 can rank candidate process models in the set ofcandidate process models based on quality values generated by qualitycomponent 204. For example, candidate process models not identified asthe highest quality process model can be ranked with respect to thehighest quality process model. As such, the candidate process model withhighest quality (e.g., lowest MSE) can be ranked first, a candidateprocess model with second highest quality (e.g., second lowest MSE) canbe ranked second, etc. Additionally, ranking component 210 can rankcandidate process models in the set of candidate process models based ondiversity values generated by diversity component 206. For example, theranking of candidate process models based on quality values can furtherbe sorted based on diversity values generated by diversity component206. As such, a ranking of candidate process models with the samequality value can be determined based on a diversity value associatedwith the candidate process models with the same quality value. Forexample, a higher diversity value (e.g., a diversity value correspondingto greater uniqueness with respect to the highest quality process model)can correspond to a higher ranking. Therefore, candidate process modelswith a higher ranking can correspond to higher quality and greaterdiversity with respect to the highest quality process model. In anaspect, ranking component 210 can additionally or alternatively rankcandidate process models in the set of candidate process models based onweighted average. However, it is to be appreciated that rankingcomponent 210 can additionally or alternatively rank candidate processmodels in the set of candidate process models based on a differentranking technique. As such, ranking component 210 can sort the set ofcandidate process models to facilitate selection of a subset ofcandidate process models that are associated with lowest error whilebeing maximally diverse.

Selection component 212 can select a subset of the candidate processmodels (e.g., the highest quality process model and/or one or more otherprocess models in the set of candidate process models) based on theranking generated by the ranking component 210. For example, selectioncomponent 212 can select a certain number of candidate process modelswith a high ranking (e.g., top three most highly ranked, top five mosthighly ranked, etc.). As such, selection component 212 can select asubset of the candidate process models that are associated with lowesterror while being maximally diverse (e.g., selection component 212 canselect a subset of the candidate process models with a strongcorrelation to high quality while being diverse to prevent being limitedto overly similar process models). For example, selection component 212can select a sample set of candidate process models to improve qualityof processed wafers 104 generated by fabrication tool(s) 110 whileconsidering different conditions and/or manufacturing situations (e.g.,process cycles) associated with fabrication tool(s) 110. Therefore, asample set of candidate process models selected by selection component212 is not limited to a group of almost identical process models.

In an aspect, selection component 212 can additionally select a subsetof the candidate process models based on an available size of a memory.For example, selection component 212 can select a certain number ofcandidate process models with a high ranking based on an available sizeof a memory (e.g., a short term model memory). As such, learningcomponent 180 can generate one or more process models (e.g., PROCESSMODEL(S) shown in FIG. 2). In an aspect, learning component 180 cantransmit a candidate process model with highest quality (e.g., thehighest quality process model identified by identification component208) to optimization component 190. In another aspect, learningcomponent 180 can store a candidate process model with highest quality(e.g., the highest quality process model identified by identificationcomponent 208) and/or one or more other candidate process models in amemory (e.g., a short term model memory).

FIG. 3 illustrates a non-limiting implementation of a system 300 inaccordance with various aspects and implementations of this disclosure.System 300 includes optimization component 190. Optimization component190 can include a candidate component 302, a prediction component 304, aquality component 306, a ranking component 308, a diversity component310 and/or a selection component 312. Aspects of system 300 canconstitute machine-executable component(s) embodied within machine(s),e.g., embodied in one or more computer readable mediums (or media)associated with one or more machines. Such component, when executed bythe one or more machines, e.g., computer(s), computing device(s),virtual machine(s), etc. can cause the machine(s) to perform theoperations described. System 300 can include memory 316 for storingcomputer executable components and instructions. System 300 can furtherinclude a processor 314 to facilitate operation of the instructions(e.g., computer executable components and instructions) by system 300.In an aspect, optimization component 190 can be implemented inconnection with learning component 190 (e.g., to control and/or optimizeprocess learning provided by learning component 180).

Optimization component 190 (e.g., candidate component 302, predictioncomponent 304, quality component 306, ranking component 308, diversitycomponent 310 and/or selection component 312) can facilitate improvedcontrol and/or optimization for maximizing quality and diversity (e.g.,minimizing error and maximizing uniqueness) of a solution for a processmodel associated with fabrication tool(s) 110. Optimization component190 can adapt to changing conditions and/or manufacturing situationsassociated with fabrication tool(s) 110. Moreover, optimizationcomponent 190 can prevent myopic generation and/or selection ofsolutions for a process model associated with fabrication tool(s) 110(e.g., by generating and/or selecting a greater sample set ofsolutions). Therefore, optimization component 190 can minimizeoverfitting of generated and/or selected solutions for a process model.

Candidate component 302 can generate one or more candidate solutions(e.g., one or more potential solutions) for a process model associatedwith fabrication tool(s) 110. Candidate component 302 can generate a setof candidate solutions based on the candidate process model with highestquality (e.g., the highest quality process model identified byidentification component 208) and/or a target output value. Eachsolution can be a set of values for inputs associated with the highestquality process model identified by identification component 208. Forexample, the highest quality process model identified by identificationcomponent 208 can be associated with a plurality of inputs (e.g., inputparameters). As such, each candidate solution can include a value foreach input associated with the highest quality process model identifiedby identification component 208. In an aspect, candidate component 302can generate the set of candidate solutions based on one or more geneticalgorithms. In another aspect, candidate component 302 can generate theset of candidate solutions based on simulated annealing. In yet anotheraspect, candidate component 302 can generate the set of candidatesolutions based on hill climbing optimization technique. However, it isto be appreciated that candidate component 302 can generate the set ofcandidate solutions based on a different type of optimization technique.Candidate component 302 can generate a set of candidate processparameters based on the highest quality process model identified byidentification component 208 (e.g., the candidate process model withhighest quality).

Prediction component 304 can facilitate selection of one or moresolutions generated by candidate component 302. For example, predictioncomponent 304 can utilize the highest quality process model identifiedby identification component 208 to predict an output value (e.g., aresult value) for each candidate solution in the set of candidatesolutions. For example, a first output value (e.g., a first predictedoutput value) can be generated based on the highest quality processmodel identified by identification component 208 and a first candidatesolution, a second output value (e.g., a second predicted output value)can be generated based on the highest quality process model identifiedby identification component 208 and a second candidate solution, etc. Assuch, prediction component 304 can generate a set of output values(e.g., a set of predicted output values) based on the highest qualityprocess model identified by identification component 208 and the set ofcandidate solutions.

Quality component 306 can further facilitate selection of one or moresolutions generated by candidate component 302. For example, qualitycomponent 306 can facilitate selection of a solution with lowest error(e.g., and/or one or more other solutions based on error) from the setof candidate solutions. Quality component 306 can generate a qualityvalue (e.g., a variance value, a predicted performance value, etc.) foreach of the candidate solutions in the set of candidate solutions. Aquality value can be a measure of a predicted performance for acorresponding candidate solution. For example, a quality value can be ameasure of error (e.g., variance) between the target output value and anoutput value (e.g., a predicted output value) associated with acandidate solution. In an aspect, a quality value can be associated witha MSE value. For example, a quality value can associated with anormalized MSE value. In another aspect, a quality value can beassociated with a correlation value. In yet another aspect, a qualityvalue can be associated with a coefficient of determination value.However, it is to be appreciated that another type of qualitymeasurement can be implemented to generate a quality value.

Ranking component 308 can rank each of the candidate solutions in theset of candidate solutions based on a corresponding quality value andthe target output value. As such, ranking component 308 can rank each ofthe candidate solutions to select (e.g., identify) a candidate solutionwith highest quality (e.g., a candidate solution with lowest errorbetween the target output value and the output value associated with thecandidate solution). Accordingly, ranking component 308 can determine acandidate solution with highest quality (e.g., a highest qualitysolution). Therefore, ranking component 308 can utilize the qualityvalue for each candidate solution in the set of candidate solutions tofacilitate selection of the highest quality solution.

Diversity component 310 can further facilitate selection of one or moresolutions generated by candidate component 302. For example, diversitycomponent 310 can facilitate selection of a diverse subset of candidatesolutions from the set of candidate solutions. Diversity component 310can generate a diversity value for each of the candidate solutions inthe set of candidate solutions. A diversity value can be a measure ofuniqueness of a particular candidate solution with respect to thehighest quality solution (e.g., the highest quality solution determinedby ranking component 308). In an aspect, a diversity value can beassociated with a cosine function (e.g., a first output vectorassociated with a particular candidate solution and a second outputvector associated with the highest quality solution). In another aspect,a diversity value can be associated with a Halstead metric (e.g., aHalstead complexity measure). In another aspect, a diversity value canbe associated with an inverse of similarity measurements. However, it isto be appreciated that another type of diversity measurement can beimplemented to generate a diversity value.

Additionally, ranking component 308 can rank candidate solutions in theset of candidate solutions based on quality values generated by qualitycomponent 306. For example, candidate solutions not identified as thehighest quality solution can be ranked with respect to the highestquality solution. As such, the candidate solution with highest quality(e.g., lowest MSE) can be ranked first, a candidate solution with secondhighest quality (e.g., second lowest MSE) can be ranked second, etc.Additionally, ranking component 308 can rank candidate solutions in theset of candidate solutions based on diversity values generated bydiversity component 310. For example, the ranking of candidate solutionsbased on quality values can further be sorted based on diversity valuesgenerated by diversity component 310. As such, a ranking of candidatesolutions with the same quality value can be determined based on adiversity value associated with the candidate solutions with the samequality value. For example, a higher diversity value (e.g., a diversityvalue corresponding to greater uniqueness with respect to the highestquality solution) can correspond to a higher ranking. Therefore,candidate solutions with a higher ranking can correspond to higherquality and greater diversity with respect to the highest qualitysolution. In an aspect, ranking component 308 can additionally oralternatively rank candidate solutions in the set of candidate solutionsbased on weighted average. However, it is to be appreciated that rankingcomponent 308 can additionally or alternatively rank candidate solutionsin the set of candidate solutions based on a different rankingtechnique. As such, ranking component 310 can sort the set of candidatesolutions to facilitate selection of a subset of candidate solutionsthat are associated with lowest error while being maximally diverse.

Selection component 312 can select a subset of the candidate solutions(e.g., the highest quality solutions and/or one or more other solutionsin the set of candidate solutions) based on the ranking generated by theranking component 308. For example, selection component 312 can select acertain number of candidate solutions with a high ranking (e.g., topthree most highly ranked, top five most highly ranked, etc.). As such,selection component 312 can select a subset of the candidate solutionsthat are associated with lowest error while being maximally diverse(e.g., selection component 312 can select a subset of the candidatesolutions with a strong correlation to high quality while being diverseto prevent being limited to overly similar solutions). For example,selection component 312 can select a sample set of candidate solutionsto improve quality of processed wafers 104 generated by fabricationtool(s) 110 while considering different conditions and/or manufacturingsituations (e.g., process cycles) associated with fabrication tool(s)110. Therefore, a sample set of candidate solutions selected byselection component 312 is not limited to a group of almost identicalsolutions.

In an aspect, selection component 312 can additionally select a subsetof the candidate solutions based on an available size of a memory. Forexample, selection component 312 can select a certain number ofcandidate solutions with a high ranking based on an available size of amemory (e.g., a short term optimization memory). As such, optimizationcomponent 190 can generate one or more solutions (e.g., SOLUTION(S)shown in FIG. 3). In an aspect, optimization component 190 can store thehighest quality solution and/or one or more other candidate solutions ina memory (e.g., a short term optimization memory).

FIG. 4 is block diagram illustrating an exemplary system 400 forfacilitating learning and/or optimizing of manufacturing processes.System 400 can include the fabrication tool(s) 110, the spectroscope120, the tool sensors 130, the device measurement equipment 140, themaintenance monitoring equipment 150, the reporting component 160 andthe analysis component 170. The analysis component 170 can include thelearning component 180, the optimization component 190, a short termmodel memory (STMM) 402 and a short term optimization memory (STOM) 404.

STMM 402 can be associated with learning component 180. Furthermore,STMM 402 can store one or more process models. For example, STMM 402 canstore candidate process models selected by selection component 212(e.g., learning component 180). In an aspect, number of candidateprocess models selected by selection component 212 (e.g., learningcomponent 180) can correspond to number of candidate process modelsnecessary to completely fill STMM 402. As such, STMM 402 can facilitatefaster generation of a process model for manufacturing processesassociated with fabrication tool(s) 110. Moreover, STMM 402 canfacilitate incremental learning to maximize quality and diversity of aprocess model for manufacturing processes associated with fabricationtool(s) 110. For example, STMM 402 can facilitate incremental learningover time as additional process data is generated during manufacturingprocesses associated with fabrication tool(s) 110.

STOM 404 can be associated with optimization component 190. Furthermore,STOM 404 can store one or more solutions. For example, STOM 404 canstore candidate solutions selected by selection component 312 (e.g.,optimization component 190). In an aspect, number of candidate solutionsselected by selection component 312 (e.g., optimization component 190)can correspond to number of candidate solutions necessary to completelyfill STOM 404. As such, STOM 404 can facilitate faster generation ofsolutions for a process model for manufacturing processes associatedwith fabrication tool(s) 110. Moreover, STOM 404 can facilitateoptimization to maximize quality of solutions while reducing overfittingby maintaining a diverse set of solutions.

In an aspect, learning component 180 can retrieve one or more candidateprocess models stored in STMM 402, compute a quality value for one ormore candidate process models stored in STMM 402 and/or generate one ormore other candidate process models, as more fully disclosed herein. Assuch, STMM 402 can facilitate incremental learning so that process dataassociated with one or more fabrication tools can be constantly improvedover time. Furthermore, STMM 402 can facilitate faster process modeldevelopment while maintaining a diverse set of high quality candidateprocess models for process modeling in a semiconductor fabricationsystem. Additionally, probability of over fitting can be reduced byimplementing STMM 402, while facilitating adaptation to changingmanufacturing situations by maintaining a set of diverse high qualitymodels for process modeling in a semiconductor fabrication system.

In another aspect, optimization component 190 can retrieve one or morecandidate solutions stored in STOM 404, compute a quality value for oneor more candidate solutions stored in STOM 404 and/or generate one ormore other candidate solutions, as more fully disclosed herein. As such,STOM 404 can facilitate incremental optimization so that process dataassociated with one or more fabrication tools can be constantly improvedover time. Furthermore, STOM 404 can facilitate faster processoptimization while maintaining a diverse set of high quality candidatesolutions for process optimization in a semiconductor fabricationsystem. Additionally, probability of over fitting can be reduced byimplementing STOM 404, while facilitating adaptation to changingmanufacturing situations by maintaining a set of diverse high qualitysolutions for process control and/or process optimization in asemiconductor fabrication system.

In yet another aspect, the learning process implemented by learningcomponent 180 can be rerun each time new process data becomes available.However, an initial population of data can be initially seeded with datastored in STMM 402. As such, the result of relearning can modify datastored in STMM 402. Accordingly, as more and more process data isobtained and/or made available, learning component 180 can considerprocess models with highest quality that survive over diversemanufacturing situations. Therefore, improved process models can beobtained over time. Furthermore, by implementing STMM 402, the learningprocess implemented by learning component 180 is not required to startfrom scratch (e.g., learning time can be reduced) and/or over fittingcan be avoided (e.g., accuracy of a utilized process model can beimproved). Similarly, as new process data becomes available, theoptimization process implemented by optimization component 190 can bererun by seeding an initial population of data with data stored in STOM404. Accordingly, by maintaining a diverse set of solutions in STOM 404,more rapid generation of a solution can be realized and/or quality of autilized solution can be improved. Furthermore, by maintaining a diverseset of solutions in STOM 404, probability of over fitting can be reducedand/or accuracy of solutions can be improved. Moreover, by implementingSTMM 402 and/or STOM 404, error between predicted values and measuredvalues can be reduced.

FIG. 5 is block diagram illustrating an exemplary system 500 forfacilitating learning and/or optimizing of manufacturing processes basedon user input. System 500 can include the fabrication tool(s) 110, thespectroscope 120, the tool sensors 130, the device measurement equipment140, the maintenance monitoring equipment 150, the reporting component160, the analysis component 170 and a user input component 502. Theanalysis component 170 can include the learning component 180, theoptimization component 190, the STMM 402 and the STOM 404.

User input component 502 can be configured to receive input from andprovide output to a user of system 500. For example, user inputcomponent 502 can render an input display screen to a user that promptsfor user specifications, and accepts such specifications from the uservia any suitable input mechanism (e.g., keyboard, touch screen, etc.).In an aspect, user input component 502 can allow a user (e.g., anexternal agent) capability to include measurements at differentfrequencies such as power every 1/10th second, pressure every seconds,metrology every run, etc. In another aspect, user input component 502can allow a user (e.g., an external agent) to specify replication ofdata (e.g., less frequent readings can be replicated until a nextreading of data) and/or reduction of data (e.g., keep a row of data fora lowest frequency measurement and/or use a statistical summary ofvalues of other less frequent samples). A statistical summary caninclude operations such as, but not limited to, a mean value, a minvalue, a max value, a range of values, a standard deviation value, etc.In yet another aspect, user input component 502 can allow a user (e.g.,an external agent) to mark a column of a data matrix as selected outputand/or mark other columns of a data matrix as tunable process parameters(i.e., inputs).

In yet another aspect, user input component 502 can allow a user (e.g.,an external agent) to specify allowable range of values permitted foreach tunable process parameter (e.g., each input parameters) associatedwith a process model. For example, user input component 502 can allow auser to specify a range (e.g., a minimum value, a maximum value, a meanvalue, a standard deviation value, etc.) for each of the parameters(e.g., input parameters, tunable inputs, etc.). In yet another aspect,user input component 502 can allow a user (e.g., an external agent) tospecify an available size (e.g., number of slots for process modelsand/or solutions) of a memory (e.g., STMM 402 and/or STOM 404). In yetanother aspect, user input component 502 can allow a user (e.g., anexternal agent) to specify a target output value for a process model. Inyet another example, user input component 502 can allow a user (e.g., anexternal agent) to specify a quality measure to generate a quality valuefrom a library of statistical quality measures and/or to specify acustom quality measure for a quality value. Furthermore, user inputcomponent 502 can allow a user (e.g., an external agent) to specify auniqueness measure to generate a diversity value from a library ofstatistical uniqueness measures and/or to specify a custom uniquenessmeasure for a diversity value. However, it is to be appreciated thatuser input component 502 can be implemented to allow a user to specify(e.g., input) other types of information and/or data to facilitatelearning and/or optimizing of manufacturing processes.

FIG. 6 is an exemplary data matrix 600 in accordance with variousaspects and implementations of this disclosure. Data matrix 600 canfacilitate learning and/or optimizing of manufacturing processes.Process data associated with fabrication tool(s) 110 can be consolidatedin the data matrix 600. For example, process data included in the datamatrix 600 can be generated and/or acquired by spectroscope 120, toolsensors 130, device measurement equipment 140 and/or maintenancemonitoring equipment 150. In an aspect, data matrix 600 can be generatedby reporting component 160.

Data matrix 600 can include sensor measurement data, spectral data,device measurement data and/or maintenance data. Sensor measurement datacan include, but is not limited to chamber pressure, gas flow, powerdata, elapsed time in seconds of a process, etc. Spectral data caninclude, but is not limited to, spectral intensities (e.g., tick by tickspectral measurements for all measured wavelengths), etc. Devicemeasurement data can include, but is not limited to, dimension data,thickness, at one or more measurement targets on a wafer, etc.Maintenance data can include, but is not limited to, elapsed time sincea last preventative maintenance, age of components (e.g., productiontime associated with a component), etc. In an aspect, at least a portionof data included in the data matrix 600 can be provided via user inputcomponent 502, modified via user input component 502, selected via userinput component 502, etc.

In the non-limiting example shown in FIG. 6, data matrix 600 can includefield 602, field 604, field 606, field 608 and field 610. For example,field 602 (e.g., Wafer-ID field) can capture a unit of processing (e.g.,a wafer). Field 604 (e.g., Time field) can report elapsed time (e.g.,elapsed seconds) for a process associated with the unit of processing(e.g., the wafer). In an aspect, the process may be partitioned into oneor more steps. As such, data matrix 600 can additionally include aStep-ID field (not shown). Field 606 can include sensor measurementdata. For example, one or more fields after a time field can includetool sensor measurement data. In FIG. 6, field 606 indicates pressure.However, it is to be appreciated that other type of sensor measurementdata (e.g., such as, but not limited to, gas flow, power data, etc.) canadditionally or alternatively be included in data matrix 600. Field 608can include spectral data. For example, field 608 can include a spectraintensity measurement (e.g., wavelength ‘W260’). However, it is to beappreciated that other spectral data can additionally or alternativelybe included in data matrix 600 (e.g., other wavelengths, etc.). In anaspect, an arbitrary number of spectral data (e.g., wavelengths) can beincluded in data matrix 600. Field 610 can include device measurementdata (e.g., FI-CD). However, it is to be appreciated that data matrix600 can additionally or alternatively include other device measurementdata (e.g., etch bias, etc.). In an aspect, field 610 can include alocation number (e.g., a tool number) associated with the devicemeasurement data. For example, a number in parentheses (e.g., ‘(1)’) canidentify a location number (e.g., a tool number). It is to beappreciated that data matrix 600 can additionally or alternativelyinclude other types of data (e.g., maintenance data, etc.).

In an aspect, metrology measurements for obtaining data included in datamatrix 600 can be performed prior to processing. In another aspect,metrology measurements for obtaining data included in data matrix 600can be performed subsequent to processing. It is to be appreciated thata single metrology measurement or in-situ metrology can be implementedper unit of processing (e.g., per wafer). Furthermore, it is to beappreciated that other types of data can be included in data matrix 600such as, but not limited to, throughput, efficiency, etc.

FIG. 7 is an exemplary ranking 700 of candidate process models inaccordance with various aspects and implementations of this disclosure.In an aspect, ranking 700 can be associated with ranking component 210(e.g., learning component 180). Column 702 includes process models(e.g., candidate process models) associated with ranking 700. Forexample, column 702 can represent candidate process models included in aset of candidate process models. Column 704 can include quality valuesassociated with the set of candidate process models included in column702. In the non-limiting example shown in FIG. 7, quality values incolumn 704 are associated with normalized MSE (e.g., 1/(1−MSE)). Assuch, a higher quality value corresponds to a lower error measurement.Column 706 can represent diversity values associated with the set ofcandidate process models included in column 702. In the non-limitingexample shown in FIG. 7, diversity values in column 706 are associatedwith a cosine function. As such, a higher diversity value corresponds togreater diversity (e.g., a diversity value equal to zero corresponds tono diversity).

Selected candidate (e.g., candidate_2) can be a candidate process modelin a set of candidate process models with highest quality (e.g.,selected candidate (e.g., candidate_2) is ranked first). For example,selected candidate (e.g., candidate_2) can be identified byidentification component 208. The set of candidate process models shownin FIG. 7 includes seven candidate process models. However, it is to beappreciated that the set of candidate process models can include adifferent number of candidate process models. In the non-limitingexample shown in FIG. 7, candidate_1 is ranked second, candidate_5 isranked third, candidate_7 is ranked fourth, candidate_4 is ranked fifth,candidate_3 is ranked sixth and candidate_6 is ranked seventh.

Ranking 700 is ranked initially based on quality values associated withcandidate_1 through candidate_7. In the non-limiting example shown inFIG. 7, selected candidate (e.g., candidate_2) can be associated with aquality value equal to 0.91, and is therefore ranked first. Selectedcandidate (e.g., candidate_2) is not associated with a diversity valuesince each of the other candidate process models are compared to theselected candidate (e.g., candidate_2) to determine diversity (e.g.,uniqueness, similarity, etc.). Candidate_1 is ranked second sincecandidate_1 is associated with a quality value equal to 0.90 (e.g., thesecond highest quality value). However, candidate_5 and candidate_7 areboth associated with a quality value equal to 0.86 (e.g., the thirdhighest quality value). However, since candidate_5 is associated with adiversity value equal to 0.79 and candidate_7 is associated with adiversity value equal to 0.76 (e.g., candidate_5 is more unique comparedwith the selected candidate), candidate_5 is ranked third andcandidate_7 is ranked fourth. In an aspect, one or more candidateprocess models can be selected for storage in the STMM 402 based on theranking 700. As such, selection of candidate process models that areassociated with lowest error while being maximally diverse can beeasily, quickly and/or optimally selected via ranking 700. Moreover,ranking 700 can facilitate selection of a subset of candidate processmodels with a strong correlation to high quality while being diverse toprevent being limited to overly similar process models (e.g., to preventoverfitting). Therefore, quality of processed wafers 104 generated byfabrication tool(s) 110 can be improved while considering differentconditions and/or manufacturing situations (e.g., process cycles)associated with fabrication tool(s) 110.

It is to be appreciated that ranking 700 can alternatively be a rankingof candidate solutions in accordance with various aspects andimplementations of this disclosure. For example, ranking 700 can beassociated with ranking component 308 (e.g., optimization component190). As such, candidate solutions can similarly be ranked based onquality values and diversity values, as discussed above with respect tocandidate process models. Accordingly, in an aspect, one or morecandidate solutions can be selected for storage in the STOM 404 based onthe ranking 700. Furthermore, selection of candidate solutions that areassociated with lowest error while being maximally diverse can beeasily, quickly and/or optimally selected via ranking 700. Moreover,ranking 700 can facilitate selection of a subset of candidate solutionswith a strong correlation to high quality while being diverse to preventbeing limited to overly similar solutions (e.g., to preventoverfitting). Therefore, quality of processed wafers 104 generated byfabrication tool(s) 110 can be improved while considering differentconditions and/or manufacturing situations (e.g., process cycles)associated with fabrication tool(s) 110.

FIG. 8 is an exemplary ranking 800 of candidate solutions in accordancewith various aspects and implementations of this disclosure. In anaspect, ranking 800 can be associated with ranking component 308 (e.g.,optimization component 190). For example, ranking 800 can be associatedwith a ranking of candidate solutions to determine a candidate solutionwith highest quality. Column 802 include solutions (e.g., candidatesolutions) associated with ranking 800. Candidate solutions can beranked based on a selected candidate process model (e.g., the selectedcandidate (e.g., candidate_2) shown in FIG. 7). For example, candidatesolutions can be ranked with respect to a target output value associatedwith the selected candidate (e.g., candidate_2) shown in FIG. 7. In thenon-limiting example shown in FIG. 8, the selected candidate processmodel (e.g., the selected candidate (e.g., candidate_2) shown in FIG. 7)can be associated with three input parameters. As such, candidatesolutions included in column 802 can be associated with a first inputparameter included in column 806, a second input parameter included incolumn 808, and a third input parameter included in column 810. Column812 can include quality values associated with the set of candidatesolutions included in column 802. Column 814 can represent diversityvalues associated with the set of candidate solutions included in column802.

Furthermore, in the non-limiting example shown in FIG. 8, a targetoutput value for the selected candidate process model (e.g., theselected candidate (e.g., candidate_2) shown in FIG. 7) is 1300. Theselected candidate process model (e.g., the selected candidate (e.g.,candidate_2) shown in FIG. 7) can be utilized to predict an output valuefor each of the candidate solutions included in column 802. Thepredicted output values for each of the candidate solutions can beincluded in column 804. A quality value can correspond to an errormeasurement between an output value (e.g., a predicted output value) ofa candidate solution and the target output value. In the non-limitingexample shown in FIG. 8, quality values in column 812 are associatedwith normalized MSE (e.g., 1/(1−MSE)). As such, a higher quality valuecorresponds to a lower error measurement. A diversity value cancorrespond to diversity between candidate solutions (e.g., diversitybetween input parameters of candidate solutions). In the non-limitingexample shown in FIG. 8, diversity values in column 814 are associatedwith a cosine function. As such, a higher diversity value corresponds togreater diversity (e.g., a diversity value equal to zero corresponds tono diversity).

As such, ranking 800 can be ranked based on column 804 (e.g., outputvalues associated with candidate solutions included in column 802),column 812 (e.g., quality values associated with candidate solutionsincluded in column 802) and/or column 814 (e.g., diversity valuesassociated with candidate solutions included in column 802).Accordingly, in the non-limiting example shown in FIG. 8, candidate_3 isranked first since an output value of 1299 is closest to the targetoutput value of 1300 (e.g., the output value of candidate_3 includes thelowest variance with respect to the target output value). Furthermore,candidate_1 is ranked second, candidate_4 is ranked third andcandidate_2 is ranked fourth when ranked with respect to a correspondingoutput value, quality value and/or diversity value. In the non-limitingexample shown in FIG. 8, candidate_3 is not associated with a diversityvalue since each of the other candidate solutions (e.g., inputparameters for each of the other candidate solutions) are compared tocandidate_3 (e.g., input parameters for candidate_3) to determinediversity (e.g., uniqueness, similarity, etc.).

FIGS. 9-11 illustrate various methodologies in accordance with one ormore embodiments of the subject application. While, for purposes ofsimplicity of explanation, the one or more methodologies shown hereinare shown and described as a series of acts, it is to be understood andappreciated that the subject innovation is not limited by the order ofacts, as some acts may, in accordance therewith, occur in a differentorder and/or concurrently with other acts from that shown and describedherein. For example, those skilled in the art will understand andappreciate that a methodology could alternatively be represented as aseries of interrelated states or events, such as in a state diagram.Moreover, not all illustrated acts may be required to implement amethodology in accordance with the innovation. Furthermore, interactiondiagram(s) may represent methodologies, or methods, in accordance withthe subject disclosure when disparate entities enact disparate portionsof the methodologies. Further yet, two or more of the disclosed examplemethods can be implemented in combination with each other, to accomplishone or more features or advantages described herein.

FIG. 9 illustrates an example methodology 900 for learning, controllingand/or optimizing processes in a semiconductor fabrication system.Initially, at 902, a set of candidate process models is generated (e.g.,by a learning component 180) based on process data associated with oneor more fabrication tools. For example, a set of potential processmodels for one or more manufacturing tools can be generated based onsensor measurement data, spectral data, device measurement data and/ormaintenance data.

At 904, a particular process model that is associated with lowest erroris selected (e.g., by a learning component 180) from the set ofcandidate process. For example, a particular process model that isassociated with a lowest MSE value can be selected from the set ofcandidate process models.

At 906, a set of candidate solutions associated with the particularprocess model is generated (e.g., by an optimization component 190). Forexample, each candidate solution can be a set of values for inputsassociated with the particular process model.

At 908, a particular solution from the set of candidate solutions isselected (e.g., by an optimization component 190) based on a targetoutput value and an output value associated with the particularsolution. For example, a particular solution from the set of candidatesolutions that is associated with lowest variance (e.g., based on atarget output value and an output value associated with the particularsolution) can be selected.

FIG. 10 illustrates an example methodology 1000 for learning processesin a semiconductor fabrication system. Initially, at 1002, process dataassociated with one or more fabrication tools is received (e.g., bylearning component 180). For example, process data can include, but isnot limited to, sensor measurement data, spectral data, devicemeasurement data and/or maintenance data. In an aspect, process data canbe associated with a data matrix.

At 1004, a set of candidate process models is generated (e.g., bycandidate component 202) based on the process data. For example, a setof mathematical process models (e.g., a set of candidate functions) canbe generated based on process data associated with one or morefabrication tools. In an aspect, one or more genetic algorithms can beimplemented to generate each candidate process model in the set ofcandidate process models. In another aspect, a curve fitting techniquecan be implemented to generate each candidate process model in the setof candidate process models. For example, each candidate process modelin the set of candidate process models can be generated using linearapproximation, multi-linear approximation, polynomial curve fitting,neural networks, etc. However, it is to be appreciated that a differenttype of technique can be implemented to generate each candidate processmodel in the set of candidate process models.

At 1006, a quality value is generated (e.g., by quality component 204)for each candidate process model in the set of candidate process models.For example, a predicted performance indicator can be generated for eachcandidate process model in the set of candidate process models. In anaspect, the quality value for each candidate process model in the set ofcandidate process models can be associated with a MSE value. Forexample, the quality value for each candidate process model in the setof candidate process models can be associated with a root MSE value. Inanother aspect, the quality value for each candidate process model inthe set of candidate process models can be associated with a correlationvalue. In yet another aspect, the quality value for each candidateprocess model in the set of candidate process models can be associatedwith a coefficient of determination value. However, it is to beappreciated that another type of quality measurement can be associatedwith the quality value for each candidate process model in the set ofcandidate process models. In an aspect, the quality value for eachcandidate process model in the set of candidate process models can be anormalized value. For example, the quality value for each candidateprocess model in the set of candidate process models can be equal to1/(1−MSE).

At 1008, a diversity value is generated (e.g., by diversity component206) for each candidate process model in the set of candidate processmodels. For example, a similarity indicator (e.g., a uniquenessindicator) can be generated for each candidate process model in the setof candidate process models. In one example, an output value generatedby a candidate process model in the set of candidate process models canbe compared with other output values generated by other candidateprocess models in the set of candidate process models. In an aspect, thediversity value for each candidate process model in the set of candidateprocess models can be associated with a cosine function (e.g., a firstoutput vector associated with a candidate process model and a secondoutput vector associated with another candidate process model). Inanother aspect, the diversity value for each candidate process model inthe set of candidate process models can be associated with a Halsteadmetric (e.g., a Halstead complexity measure). In yet another aspect, thediversity value for each candidate process model in the set of candidateprocess models can be associated with inverse of similaritymeasurements. However, it is to be appreciated that another type ofdiversity measurement can be associated with the diversity value foreach candidate process model in the set of candidate process models.

At 1010, a candidate process model in the set of candidate processmodels with highest quality is identified (e.g., by identificationcomponent 208). For example, quality values generated for the candidateprocess models can be compared. In an aspect, a candidate process modelin the set of candidate process models associated with lowest error(e.g., a lowest MSE value) can be identified.

At 1012, candidate process models in the set of candidate process modelsare ranked (e.g., by ranking component 210) based on generated qualityvalues and/or generated diversity values for the set of candidateprocess models. For example, the set of candidate process models can beinitially ranked based on corresponding quality values (e.g., theidentified candidate process model with highest quality is ranked first,a candidate process model with second highest quality is ranked second,etc.). Furthermore, the set of candidate process models can be rankedbased on corresponding diversity values. For example, a ranking ofcandidate process models with the same quality value can be determinedbased on a corresponding diversity value (e.g., the candidate processmodel with a higher diversity value can be ranked higher). As such, ahigher ranking can correspond to higher quality (e.g., a lower errorvalue) and greater diversity (e.g., greater uniqueness compared to othercandidate process models).

At 1014, a subset of the set of candidate process models is selected(e.g., by selection component 212) based on the ranking. For example, acertain number of candidate process models with highest ranking (e.g.,top three most highly ranked, top five most highly ranked, etc.) can beselected. In an aspect, the subset of the candidate process models canbe selected based on an available size of a memory. For example, acertain number of candidate process models with a high ranking can beselected based on an available size of a memory (e.g., a short termmodel memory).

At 1016, the subset of the set of candidate process models is stored ina short term model memory (e.g., STMM 402). As such, incrementallearning based on process data associated with one or more fabricationtools can be constantly improved over time. Furthermore, faster processmodel development can be employed while maintaining a diverse set ofhigh quality candidate process models in short term memory.Additionally, probability of over fitting can be reduced while adaptingto changing manufacturing situations by maintaining a set of diversehigh quality models for process modeling in short term memory.

FIG. 11 illustrates an example methodology 1100 for controlling and/oroptimizing processes in a semiconductor fabrication system. In anaspect, methodology 1100 can be implemented in connection withmethodology 1000. Initially, at 1102, a process model associated withprocess data for one or more fabrication tools is received (e.g., byoptimization component 190). For example, a process model selected withhighest quality among a set of candidate process models can be received.In an aspect, the received process model can be the process modelidentified in 1010 of methodology 1000.

At 1104, a target output value for the process model is received (e.g.,by optimization component 190). For example, a target output value(e.g., a desired output value) for the received process model can bereceived.

At 1106, a set of candidate solutions is generated (e.g., by candidatecomponent 302) based on the process model. For example, each solution inthe set of candidate solutions can be a set of values for inputs (e.g.,input parameters) associated with the process model. In an aspect, eachsolution in the set of candidate solutions can be generated based on oneor more genetic algorithms. In another aspect, each solution in the setof candidate solutions can be generated based on simulated annealing. Inyet another aspect, each solution in the set of candidate solutions canbe generated based on hill climbing optimization technique. However, itis to be appreciated that each solution in the set of candidatesolutions can be generated based on a different type of optimizationtechnique.

At 1108, an output value for each candidate solution in the set ofcandidate solutions is predicted (e.g., by prediction component 304) byutilizing the process model. For example, a first output value for afirst candidate solution can be generated by utilizing the processmodel, a second output value for a second candidate solution can begenerated by utilizing the process model, etc. As such, a set of outputvalues can be generated based on the process model and the set ofcandidate solutions.

At 1110, a quality value is generated (e.g., by quality component 306)for each candidate solution in the set of candidate solutions. Thequality value can be a quality indicator for an output value of acandidate solution compared to the target output value. For example, aquality value can indicate variance between an output value of acandidate solution and the target output value. In an aspect, thequality value for each candidate process model in the set of candidateprocess models can be associated with a MSE value. For example, thequality value for each candidate process model in the set of candidateprocess models can be associated with a root MSE value. In anotheraspect, the quality value for each candidate process model in the set ofcandidate process models can be associated with a correlation value. Inyet another aspect, the quality value for each candidate process modelin the set of candidate process models can be associated with acoefficient of determination value. However, it is to be appreciatedthat another type of quality measurement can be associated with thequality value for each candidate process model in the set of candidateprocess models. In an aspect, the quality value for each candidateprocess model in the set of candidate process models can be a normalizedvalue. For example, the quality value for each candidate process modelin the set of candidate process models can be equal to 1/(1−MSE).

At 1112, a candidate solution with highest quality in the set ofcandidate solutions is determined (e.g., by ranking component 308) basedon the quality value generated for each candidate solution in the set ofcandidate solutions. For example, a candidate solution with a targetvalue corresponding to lowest error between the output value for thecandidate solution and the target output value (e.g., a quality valuecorresponding to lowest MSE) can be selected as the candidate solutionwith highest quality.

At 1114, a diversity value is generated (e.g., by diversity component310) for each candidate solution in the set of candidate solutions. Thediversity value can be a measure of uniqueness of a particular candidatesolution with respect to the candidate solution with highest quality(e.g., determined at 1012). In an aspect, the diversity value for eachcandidate process model in the set of candidate process models can beassociated with a cosine function (e.g., a first output vectorassociated with a particular candidate solution and a second outputvector associated with the candidate solution with highest quality). Inanother aspect, the diversity value for each candidate process model inthe set of candidate process models can be associated with a Halsteadmetric (e.g., a Halstead complexity measure). In another aspect, thediversity value for each candidate process model in the set of candidateprocess models can be associated with an inverse of similaritymeasurements. However, it is to be appreciated that another type ofdiversity measurement can be implemented to generate the diversity valuefor each candidate process model in the set of candidate process models.

At 1116, candidate solutions in the set of candidate solutions areranked (e.g., by ranking component 308) based on generated qualityvalues and/or generated diversity values for the set of candidatesolutions. For example, the set of solutions can be initially rankedbased on corresponding quality values (e.g., the candidate solution withhighest quality is ranked first, a candidate solution with secondhighest quality is ranked second, etc.). Furthermore, the set ofcandidate solutions can be ranked based on corresponding diversityvalues. For example, a ranking of candidate solutions with the samequality value can be determined based on a corresponding diversity value(e.g., the candidate solution with a higher diversity value can beranked higher). As such, a higher ranking can correspond to higherquality (e.g., a lower error value) and greater diversity (e.g., greateruniqueness compared to the candidate solution with highest quality).

At 1118, a subset of the set of candidate solutions is selected (e.g.,by selection component 312) based on the ranking. For example, a certainnumber of candidate solutions with highest ranking (e.g., top three mosthighly ranked, top five most highly ranked, etc.) can be selected. In anaspect, the subset of the solutions can be selected based on anavailable size of a memory. For example, a certain number of candidatesolutions with a high ranking can be selected based on an available sizeof a memory (e.g., a short term optimization memory).

At 1120, the subset of the set of candidate solutions is stored in ashort term optimization memory (e.g., STOM 404). As such, incrementaloptimization based on process data associated with one or morefabrication tools can be constantly improved over time. Furthermore,faster process optimization can be employed while maintaining a diverseset of high quality candidate solutions for process optimization inshort term memory. Additionally, probability of over fitting can bereduced while adapting to changing manufacturing situations bymaintaining a set of diverse high quality solutions for process controland/or process optimization in short term memory.

In order to provide a context for the various aspects of the disclosedsubject matter, FIGS. 12 and 13 as well as the following discussion areintended to provide a brief, general description of a suitableenvironment in which the various aspects of the disclosed subject mattermay be implemented.

With reference to FIG. 12, a suitable environment 1200 for implementingvarious aspects of this disclosure includes a computer 1212. Thecomputer 1212 includes a processing unit 1214, a system memory 1216, anda system bus 1218. The system bus 1218 couples system componentsincluding, but not limited to, the system memory 1216 to the processingunit 1214. The processing unit 1214 can be any of various availableprocessors. Dual microprocessors and other multiprocessor architecturesalso can be employed as the processing unit 1214.

The system bus 1218 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, Industrial StandardArchitecture (ISA), Micro-Channel Architecture (MSA), Extended ISA(EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus(USB), Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), Firewire (IEEE 1394), and SmallComputer Systems Interface (SCSI).

The system memory 1216 includes volatile memory 1220 and nonvolatilememory 1222. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer1212, such as during start-up, is stored in nonvolatile memory 1222. Byway of illustration, and not limitation, nonvolatile memory 1222 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable programmable ROM(EEPROM), flash memory, or nonvolatile random access memory (RAM) (e.g.,ferroelectric RAM (FeRAM). Volatile memory 1220 includes random accessmemory (RAM), which acts as external cache memory. By way ofillustration and not limitation, RAM is available in many forms such asstatic RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), doubledata rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM(SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM),and Rambus dynamic RAM.

Computer 1212 also includes removable/non-removable,volatile/nonvolatile computer storage media. FIG. 12 illustrates, forexample, a disk storage 1224. Disk storage 1224 includes, but is notlimited to, devices like a magnetic disk drive, floppy disk drive, tapedrive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memorystick. The disk storage 1224 also can include storage media separatelyor in combination with other storage media including, but not limitedto, an optical disk drive such as a compact disk ROM device (CD-ROM), CDrecordable drive (CD-R Drive), CD rewritable drive (CD-RW Drive) or adigital versatile disk ROM drive (DVD-ROM). To facilitate connection ofthe disk storage devices 1224 to the system bus 1218, a removable ornon-removable interface is typically used, such as interface 1226.

FIG. 12 also depicts software that acts as an intermediary between usersand the basic computer resources described in the suitable operatingenvironment 1200. Such software includes, for example, an operatingsystem 1228. Operating system 1228, which can be stored on disk storage1224, acts to control and allocate resources of the computer system1212. System applications 1230 take advantage of the management ofresources by operating system 1228 through program modules 1232 andprogram data 1234, e.g., stored either in system memory 1216 or on diskstorage 1224. It is to be appreciated that this disclosure can beimplemented with various operating systems or combinations of operatingsystems.

A user enters commands or information into the computer 1212 throughinput device(s) 1236. Input devices 1236 include, but are not limitedto, a pointing device such as a mouse, trackball, stylus, touch pad,keyboard, microphone, joystick, game pad, satellite dish, scanner, TVtuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 1214through the system bus 1218 via interface port(s) 1238. Interfaceport(s) 1238 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 1240 usesome of the same type of ports as input device(s) 1236. Thus, forexample, a USB port may be used to provide input to computer 1212, andto output information from computer 1212 to an output device 1240.Output adapter 1242 is provided to illustrate that there are some outputdevices 1240 like monitors, speakers, and printers, among other outputdevices 1240, which require special adapters. The output adapters 1242include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 1240and the system bus 1218. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 1244.

Computer 1212 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)1244. The remote computer(s) 1244 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer1212. For purposes of brevity, only a memory storage device 1246 isillustrated with remote computer(s) 1244. Remote computer(s) 1244 islogically connected to computer 1212 through a network interface 1248and then physically connected via communication connection 1250. Networkinterface 1248 encompasses wire and/or wireless communication networkssuch as local-area networks (LAN), wide-area networks (WAN), cellularnetworks, etc. LAN technologies include Fiber Distributed Data Interface(FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ringand the like. WAN technologies include, but are not limited to,point-to-point links, circuit switching networks like IntegratedServices Digital Networks (ISDN) and variations thereon, packetswitching networks, and Digital Subscriber Lines (DSL).

Communication connection(s) 1250 refers to the hardware/softwareemployed to connect the network interface 1248 to the bus 1218. Whilecommunication connection 1250 is shown for illustrative clarity insidecomputer 1212, it can also be external to computer 1212. Thehardware/software necessary for connection to the network interface 1248includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems and DSL modems, ISDN adapters, and Ethernet cards.

FIG. 13 is a schematic block diagram of a sample-computing environment1300 with which the subject matter of this disclosure can interact. Thesystem 1300 includes one or more client(s) 1310. The client(s) 1310 canbe hardware and/or software (e.g., threads, processes, computingdevices). The system 1300 also includes one or more server(s) 1330.Thus, system 1300 can correspond to a two-tier client server model or amulti-tier model (e.g., client, middle tier server, data server),amongst other models. The server(s) 1330 can also be hardware and/orsoftware (e.g., threads, processes, computing devices). The servers 1330can house threads to perform transformations by employing thisdisclosure, for example. One possible communication between a client1310 and a server 1330 may be in the form of a data packet transmittedbetween two or more computer processes.

The system 1300 includes a communication framework 1350 that can beemployed to facilitate communications between the client(s) 1310 and theserver(s) 1330. The client(s) 1310 are operatively connected to one ormore client data store(s) 1320 that can be employed to store informationlocal to the client(s) 1310. Similarly, the server(s) 1330 areoperatively connected to one or more server data store(s) 1340 that canbe employed to store information local to the servers 1330.

It is to be noted that aspects or features of this disclosure can beexploited in substantially any wireless telecommunication or radiotechnology, e.g., Wi-Fi; Bluetooth; Worldwide Interoperability forMicrowave Access (WiMAX); Enhanced General Packet Radio Service(Enhanced GPRS); Third Generation Partnership Project (3GPP) Long TermEvolution (LTE); Third Generation Partnership Project 2 (3GPP2) UltraMobile Broadband (UMB); 3GPP Universal Mobile Telecommunication System(UMTS); High Speed Packet Access (HSPA); High Speed Downlink PacketAccess (HSDPA); High Speed Uplink Packet Access (HSUPA); GSM (GlobalSystem for Mobile Communications) EDGE (Enhanced Data Rates for GSMEvolution) Radio Access Network (GERAN); UMTS Terrestrial Radio AccessNetwork (UTRAN); LTE Advanced (LTE-A); etc. Additionally, some or all ofthe aspects described herein can be exploited in legacytelecommunication technologies, e.g., GSM. In addition, mobile as wellnon-mobile networks (e.g., the Internet, data service network such asinternet protocol television (IPTV), etc.) can exploit aspects orfeatures described herein.

While the subject matter has been described above in the general contextof computer-executable instructions of a computer program that runs on acomputer and/or computers, those skilled in the art will recognize thatthis disclosure also can or may be implemented in combination with otherprogram modules. Generally, program modules include routines, programs,components, data structures, etc. that perform particular tasks and/orimplement particular abstract data types. Moreover, those skilled in theart will appreciate that the inventive methods may be practiced withother computer system configurations, including single-processor ormultiprocessor computer systems, mini-computing devices, mainframecomputers, as well as personal computers, hand-held computing devices(e.g., PDA, phone), microprocessor-based or programmable consumer orindustrial electronics, and the like. The illustrated aspects may alsobe practiced in distributed computing environments where tasks areperformed by remote processing devices that are linked through acommunications network. However, some, if not all aspects of thisdisclosure can be practiced on stand-alone computers. In a distributedcomputing environment, program modules may be located in both local andremote memory storage devices.

As used in this application, the terms “component,” “system,”“platform,” “interface,” and the like, can refer to and/or can include acomputer-related entity or an entity related to an operational machinewith one or more specific functionalities. The entities disclosed hereincan be either hardware, a combination of hardware and software,software, or software in execution. For example, a component may be, butis not limited to being, a process running on a processor, a processor,an object, an executable, a thread of execution, a program, and/or acomputer. By way of illustration, both an application running on aserver and the server can be a component. One or more components mayreside within a process and/or thread of execution and a component maybe localized on one computer and/or distributed between two or morecomputers.

In another example, respective components can execute from variouscomputer readable media having various data structures stored thereon.The components may communicate via local and/or remote processes such asin accordance with a signal having one or more data packets (e.g., datafrom one component interacting with another component in a local system,distributed system, and/or across a network such as the Internet withother systems via the signal). As another example, a component can be anapparatus with specific functionality provided by mechanical partsoperated by electric or electronic circuitry, which is operated by asoftware or firmware application executed by a processor. In such acase, the processor can be internal or external to the apparatus and canexecute at least a part of the software or firmware application. As yetanother example, a component can be an apparatus that provides specificfunctionality through electronic components without mechanical parts,wherein the electronic components can include a processor or other meansto execute software or firmware that confers at least in part thefunctionality of the electronic components. In an aspect, a componentcan emulate an electronic component via a virtual machine, e.g., withina cloud computing system.

In addition, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.” That is, unless specified otherwise, or clearfrom context, “X employs A or B” is intended to mean any of the naturalinclusive permutations. That is, if X employs A; X employs B; or Xemploys both A and B, then “X employs A or B” is satisfied under any ofthe foregoing instances. Moreover, articles “a” and “an” as used in thesubject specification and annexed drawings should generally be construedto mean “one or more” unless specified otherwise or clear from contextto be directed to a singular form.

As used herein, the terms “example” and/or “exemplary” are utilized tomean serving as an example, instance, or illustration. For the avoidanceof doubt, the subject matter disclosed herein is not limited by suchexamples. In addition, any aspect or design described herein as an“example” and/or “exemplary” is not necessarily to be construed aspreferred or advantageous over other aspects or designs, nor is it meantto preclude equivalent exemplary structures and techniques known tothose of ordinary skill in the art.

Various aspects or features described herein can be implemented as amethod, apparatus, system, or article of manufacture using standardprogramming or engineering techniques. In addition, various aspects orfeatures disclosed in this disclosure can be realized through programmodules that implement at least one or more of the methods disclosedherein, the program modules being stored in a memory and executed by atleast a processor. Other combinations of hardware and software orhardware and firmware can enable or implement aspects described herein,including a disclosed method(s). The term “article of manufacture” asused herein can encompass a computer program accessible from anycomputer-readable device, carrier, or storage media. For example,computer readable storage media can include but are not limited tomagnetic storage devices (e.g., hard disk, floppy disk, magnetic strips. . . ), optical discs (e.g., compact disc (CD), digital versatile disc(DVD), blu-ray disc (BD) . . . ), smart cards, and flash memory devices(e.g., card, stick, key drive . . . ), or the like.

As it is employed in the subject specification, the term “processor” canrefer to substantially any computing processing unit or devicecomprising, but not limited to, single-core processors;single-processors with software multithread execution capability;multi-core processors; multi-core processors with software multithreadexecution capability; multi-core processors with hardware multithreadtechnology; parallel platforms; and parallel platforms with distributedshared memory. Additionally, a processor can refer to an integratedcircuit, an application specific integrated circuit (ASIC), a digitalsignal processor (DSP), a field programmable gate array (FPGA), aprogrammable logic controller (PLC), a complex programmable logic device(CPLD), a discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. Further, processors can exploit nano-scalearchitectures such as, but not limited to, molecular and quantum-dotbased transistors, switches and gates, in order to optimize space usageor enhance performance of user equipment. A processor may also beimplemented as a combination of computing processing units.

In this disclosure, terms such as “store,” “storage,” “data store,” datastorage,” “database,” and substantially any other information storagecomponent relevant to operation and functionality of a component areutilized to refer to “memory components,” entities embodied in a“memory,” or components comprising a memory. It is to be appreciatedthat memory and/or memory components described herein can be eithervolatile memory or nonvolatile memory, or can include both volatile andnonvolatile memory.

By way of illustration, and not limitation, nonvolatile memory caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable ROM (EEPROM), flashmemory, or nonvolatile random access memory (RAM) (e.g., ferroelectricRAM (FeRAM). Volatile memory can include RAM, which can act as externalcache memory, for example. By way of illustration and not limitation,RAM is available in many forms such as synchronous RAM (SRAM), dynamicRAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), direct RambusRAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM(RDRAM). Additionally, the disclosed memory components of systems ormethods herein are intended to include, without being limited toincluding, these and any other suitable types of memory.

It is to be appreciated and understood that components, as describedwith regard to a particular system or method, can include the same orsimilar functionality as respective components (e.g., respectively namedcomponents or similarly named components) as described with regard toother systems or methods disclosed herein.

What has been described above includes examples of systems and methodsthat provide advantages of this disclosure. It is, of course, notpossible to describe every conceivable combination of components ormethods for purposes of describing this disclosure, but one of ordinaryskill in the art may recognize that many further combinations andpermutations of this disclosure are possible. Furthermore, to the extentthat the terms “includes,” “has,” “possesses,” and the like are used inthe detailed description, claims, appendices and drawings such terms areintended to be inclusive in a manner similar to the term “comprising” as“comprising” is interpreted when employed as a transitional word in aclaim.

What is claimed is:
 1. A system, comprising: a memory storing computerexecutable components; and a processor configured to execute thefollowing computer executable components stored in the memory: alearning component that generates a set of candidate process modelsbased on process data associated with one or more fabrication tools andselects a particular process model from the set of candidate processmodels based on a first defined criterion; and an optimization componentthat generates a set of candidate solutions associated with theparticular process model and selects a particular solution from the setof candidate solutions based on a second defined criterion.
 2. Thesystem of claim 1, wherein the learning component selects the particularprocess model from the set of candidate process models based on an errorvalue associated with the particular process model.
 3. The system ofclaim 1, wherein the learning component determines that the particularprocess model from the set of candidate process models is associatedwith lowest error.
 4. The system of claim 1, wherein the optimizationcomponent selects the particular solution from the set of candidatesolutions based on a target output value.
 5. The system of claim 1,wherein the optimization component selects the particular solution fromthe set of candidate solutions based on an output value associated withthe particular solution.
 6. The system of claim 1, wherein theoptimization component selects the particular solution from the set ofcandidate solutions based on a target output value and an output valueassociated with the particular solution.
 7. The system of claim 1,wherein the learning component generates the set of candidate processmodels based on a data matrix associated with the process data.
 8. Thesystem of claim 1, wherein the learning component generates the set ofcandidate process models based on a data matrix associated with at leastone of sensor measurement data, spectral data, device measurement dataand maintenance data.
 9. The system of claim 1, wherein the learningcomponent generates a quality value for each candidate process model inthe set of candidate process models to facilitate selection of theparticular process model from the set of candidate process models. 10.The system of claim 9, wherein the learning component further generatesa diversity value associated with uniqueness for each candidate processmodel in the set of candidate process models.
 11. The system of claim10, wherein the learning component generates a ranking of the set ofcandidate process models as a function of the quality value and thediversity value for each candidate process model in the set of candidateprocess models, selects one or more other process models from the set ofcandidate process models based on the ranking, and stores the particularprocess model and the one or more other process models in a data store.12. The system of claim 1, wherein the optimization component generatesa quality value for each candidate solution in the set of candidatesolutions to facilitate selection of the particular solution from theset of candidate solutions.
 13. The system of claim 12, wherein theoptimization component further generates a diversity value associatedwith uniqueness for each candidate solution in the set of candidatesolutions.
 14. The system of claim 13, wherein the optimizationcomponent generates a ranking of the set of candidate solutions as afunction of the quality value and the diversity value for each candidatesolution in the set of candidate solutions, selects one or more othersolutions from the set of candidate solutions based on the ranking, andstores the particular solution and the one or more other solutions in adata store.
 15. A method, comprising: employing a processor thatfacilitates execution of computer executable instructions stored on anon-transitory computer readable medium to implement operations,comprising: generating a set of candidate process models based onprocess data associated with one or more manufacturing tools; selectinga particular process model from the set of candidate process modelsbased on a first defined criterion; generating a set of candidatesolutions associated with the particular process model; and selecting aparticular solution from the set of candidate solutions based on asecond defined criterion.
 16. The method of claim 15, furthercomprising: generating a quality value for each candidate process modelin the set of candidate process models.
 17. The method of claim 16,wherein the selecting the particular process model comprises selectingthe particular process model from the set of candidate process modelsbased on the quality value associated with each candidate process modelin the set of candidate process models.
 18. The method of claim 15,wherein the selecting the particular solution comprises selecting theparticular solution from the set of candidate solutions based on atarget output value and an output value associated with the particularsolution.
 19. A non-transitory computer-readable medium having storedthereon computer-executable instructions that, in response to executionby a system including a processor, cause the system to performoperations, the operations including: generating a set of candidateprocess models based on process data associated with a fabrication tool;selecting a process model from the set of candidate process models basedon a defined criterion; generating a set of candidate solutionsassociated with the process model; and selecting a solution from the setof candidate solutions based on a target output value.
 20. Thenon-transitory computer-readable medium of claim 19, wherein theselecting the solution comprises selecting the solution from the set ofcandidate solutions based on an output value associated with thesolution.